#ifndef AVLTREE_H
#define AVLTREE_H
#include <stdio.h>
#include <stdlib.h>

typedef int Element;
typedef struct avlNode{
    Element data;
    struct avlNode *right;
    struct avlNode *left;
    int height;
}AVLNode;

typedef struct {
    AVLNode *root;
    int count;
}AVLTree;

AVLTree *createTree();
void releaseTree(AVLTree* tree);
void visitAVLNode(AVLNode *node);

void insertAVLTree(AVLTree *tree, Element e);
void inOrderAVLTree(AVLTree *tree);
int heightAVLNode(AVLNode *node);
void deleteAVLTree(AVLTree *tree, Element e);
#endif //VALTREE_H
